设置剔除

Kanzi 渲染通道中,您可以设置剔除属性,以优化您的应用程序中的网格性能。

设置剔除模式

默认情况下,Kanzi 会剔除 3D 内容中其法线背离所激活的摄像机的那些多边形。若要重写设置,您可以在管道状态渲染通道 (Pipeline State Render Pass) 中设置剔除模式。

要设置剔除模式:

  1. 素材库 (Library) > 渲染 (Rendering) > 渲染通道 (Render Passes) 按下 Alt 并右键点击并选择管道状态渲染通道 (Pipeline State Render Pass),或选择现有管道状态渲染通道 (Pipeline State Render Pass)。请参阅渲染通道
  2. 属性 (Properties) 中,将剔除模式 (Cull Mode) 属性设置为:
  3. 管道状态渲染通道 (Pipeline State Render Pass) 中创建清除渲染通道 (Clear Render Pass) 和您用于绘制想要剔除节点的绘图对象渲染通道 (Draw Objects Render Pass)
    您可以使用过滤器收集特定节点进行渲染。请参阅过滤器
  4. 应用您创建的渲染通道:
    1. 工程 (Project) 中选择其中包含您要渲染内容场景 (Scene) 或的 2D 视口 (Viewport 2D) 节点。
    2. 属性 (Properties) 中,将渲染通道 (Render Pass) 属性设置为包含您所创建的管道状态渲染通道 (Pipeline State Render Pass) 的渲染通道树中最顶层的渲染通道。

控制视锥体剔除

当您有大量网格位于摄像机视锥体以外时,使用视锥体剔除。视锥体是所激活摄像机的可视范围,包含那些包围盒裁剪视锥体的节点。通过视锥体剔除,您可以用剔除网格花费的 GPU 时间换取 CPU 时间。

要控制视锥体剔除:

  1. 素材库 (Library) 中选择用于渲染要设置视锥体剔除的网格的 绘图对象渲染通道 (Draw Objects Render Pass)。请参阅渲染
  2. 属性 (Properties) 中添加并启用视锥体剔除 (Frustum Culling) 属性。
    这种情况下,Kanzi 不会在网格超出视锥体时渲染网格。
  3. (可选)工程 (Project) 中选择含有要设置视锥体剔除的网格的节点,在属性 (Properties) 中点击 ,添加视锥体剔除边距 (Frustum Cull Margin) 属性,并将其设置为节点周围不希望剔除的空间量。
    例如,在顶点着色器对节点的几何形状进行大幅修改时(如顶点蒙皮节点),这种做法会非常有用。

要查看您的视锥体剔除设置是否按预期工作,在预览 (Preview) 中点击 进入分析 (Analyze) 模式,右键点击 ,选择性能 HUD (Performance HUD),然后移动摄像机远离您想要为其控制剔除的那个节点。当无法再为节点执行任何剔除时,批处理计数 (Batch Count) 值会下降。

另请参阅

渲染

过滤器

减少渲染顶点的数量

设置顶点缓存的正确大小

并行加载资源

排除应用程序的性能问题

最佳实践